package org.nepu.scr.indexrate.raterisk.preriskparams;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.lboot.jpa.entity.BaseEntity;
import org.nepu.scr.indexrate.converter.compliancerate.datacompleteness.*;
import org.nepu.scr.indexrate.converter.riskrate.equipmentdata.*;
import org.nepu.scr.indexrate.converter.riskrate.equipmentdata.drillingdevice.DrillingMachineMenuConverter2_4;
import org.nepu.scr.indexrate.converter.riskrate.equipmentrisk.*;
import org.nepu.scr.indexrate.converter.riskrate.operationpersonnel.OperationPersonnelMenuConverter;
import org.nepu.scr.indexrate.converter.riskrate.operationwellrisk.OperationWellRiskMenuConverter;
import org.nepu.scr.indexrate.vo.compliancerate.datacompleteness.*;
import org.nepu.scr.indexrate.vo.riskrate.equipmentdata.*;
import org.nepu.scr.indexrate.vo.riskrate.equipmentdata.drillingdevice.DrillingMachineMenu2_4;
import org.nepu.scr.indexrate.vo.riskrate.equipmentrisk.*;
import org.nepu.scr.indexrate.vo.riskrate.operationpersonnel.OperationPersonnelMenu;
import org.nepu.scr.indexrate.vo.riskrate.operationwellrisk.OperationWellRiskMenu;

import javax.persistence.Convert;
import java.io.Serializable;

@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("作业前风险评级指标评价参数")
public class RiskParamsData extends BaseEntity implements Serializable {

    @ApiModelProperty(value = "评价任务ID")
    String riskId;

    @ApiModelProperty(value = "见”作业井风险”参数B11")
    @Convert(converter = OperationWellRiskMenuConverter.class)
    OperationWellRiskMenu b1;

    @ApiModelProperty(value = "见”安全管理文件”参数B31")
    @Convert(converter = SafetyManagementFileMenuConverter1_5.class)
    SafetyManagementFileMenu1_5 b3;

    @ApiModelProperty(value = "见”作业人员风险”参数B51")
    @Convert(converter = OperationPersonnelMenuConverter.class)
    OperationPersonnelMenu b5;

    @ApiModelProperty(value = "井架")
    @Convert(converter = WellFrameB221Converter.class)
    WellFrameB221 b221;

    @ApiModelProperty(value = "游车大钩")
    @Convert(converter = TravellingBlockB222Converter.class)
    TravellingBlockB222 b222;

    @ApiModelProperty(value = "顶驱")
    @Convert(converter = TopDriveB223Converter.class)
    TopDriveB223 b223;

    @ApiModelProperty(value = "转盘")
    @Convert(converter = TurntableB224Converter.class)
    TurntableB224 b224;

    @ApiModelProperty(value = "井口工具")
    @Convert(converter = WellheadToolsB225Converter.class)
    WellheadToolsB225 b225;

    @ApiModelProperty(value = "循环系统")
    @Convert(converter = CirculationB226Converter.class)
    CirculationB226 b226;

    @ApiModelProperty(value = "BOP吊")
    @Convert(converter = BOPB227Converter.class)
    BOPB227 b227;

    @ApiModelProperty(value = "防喷器远程控制系统")
    @Convert(converter = RemoteB228Converter.class)
    RemoteB228 b228;

    @ApiModelProperty(value = "井控设备")
    @Convert(converter = WellControlB229Converter.class)
    WellControlB229 b229;

    @ApiModelProperty(value = "动力及辅助设备")
    @Convert(converter = PowerB22aConverter.class)
    PowerB22a b22a;

    @ApiModelProperty(value = "应急发电机组、应急供电等电气系统")
    @Convert(converter = EmergencyB22bConverter.class)
    EmergencyB22b b22b;

    @ApiModelProperty(value = "消防安全设施")
    @Convert(converter = SafeB22cConverter.class)
    SafeB22c b22c;

    @ApiModelProperty(value = "救生设备设施")
    @Convert(converter = LifeB22dConverter.class)
    LifeB22d b22d;

    @ApiModelProperty(value = "甲板吊车")
    @Convert(converter = DeckB22eConverter.class)
    DeckB22e b22e;

    @ApiModelProperty(value = "钻井绞车")
    @Convert(converter = DrillingB22fConverter.class)
    DrillingB22f b22f;

    @ApiModelProperty(value = "气动小绞车")
    @Convert(converter = PneumaticB22gConverter.class)
    PneumaticB22g b22g;

    @ApiModelProperty(value = "载人绞车")
    @Convert(converter = MannedB22hConverter.class)
    MannedB22h b22h;

    @ApiModelProperty(value = "提升旋转系统")
    @Convert(converter = ImproveB231Converter.class)
    ImproveB231 b231;

    @ApiModelProperty(value = "循环系统")
    @Convert(converter = CirculationB232Converter.class)
    CirculationB232 b232;

    @ApiModelProperty(value = "井控系统")
    @Convert(converter = WellControlB233Converter.class)
    WellControlB233 b233;

    @ApiModelProperty(value = "动力及电气系统")
    @Convert(converter = PowerB234Converter.class)
    PowerB234 b234;

    @ApiModelProperty(value = "仪表通讯系统")
    @Convert(converter = InstrumentB235Converter.class)
    InstrumentB235 b235;

    @ApiModelProperty(value = "安全系统")
    @Convert(converter = SafeB236Converter.class)
    SafeB236 b236;

    @ApiModelProperty(value = "承压试验参数B21")
    @Convert(converter = PressureTestConverter2_2.class)
    PressureTest2_2 b21;

    @ApiModelProperty(value = "设备设施资料-船级及法定证书参数B41")
    @Convert(converter = ShipLevelMenuConverter2_4.class)
    ShipLevelMenu2_4 b41;

    @ApiModelProperty(value = "设备设施资料-钻井设备证书参数B42")
    @Convert(converter = DrillingDeviceMenuConverter2_4.class)
    DrillingDeviceMenu2_4 b42;

    @ApiModelProperty(value = "设备设施资料-钻井液净化设备及压力管线证书参数B43")
    @Convert(converter = DrillingFluidMenuConverter2_4.class)
    DrillingFluidMenu2_4 b43;

    @ApiModelProperty(value = "设备设施资料-井控设备证书参数B44")
    @Convert(converter = WellControlDeviceMenuConverter2_4.class)
    WellControlDeviceMenu2_4 b44;

    @ApiModelProperty(value = "设备设施资料-动力及辅助设备证书参数B45")
    @Convert(converter = PowerAndAuxiliaryMenuConverter2_4.class)
    PowerAndAuxiliaryMenu2_4 b45;

    @ApiModelProperty(value = "固井设备及管线证书参数B46")
    @Convert(converter = FixedWellMenuConverter.class)
    FixedWellMenu b46;

    @ApiModelProperty(value = "环保设备证书参数B47")
    @Convert(converter = EnvironmentalDeviceMenuConverter.class)
    EnvironmentalDeviceMenu b47;

    @ApiModelProperty(value = "救生设备证书参数B48")
    @Convert(converter = LifesavingDeviceMenuConverter.class)
    LifesavingDeviceMenu b48;

    @ApiModelProperty(value = "探测及报警系统证书参数B49")
    @Convert(converter = DetectionAlarmMenuConverter.class)
    DetectionAlarmMenu b49;

    @ApiModelProperty(value = "设备设施资料-消防设备设施证书参数B4a")
    @Convert(converter = FireExtinguisherMenuConverter2_4.class)
    FireExtinguisherMenu2_4 b4a;

    @ApiModelProperty(value = "通信及航行设备证书参数B4b")
    @Convert(converter = CommunicationFlightMenuConverter.class)
    CommunicationFlightMenu b4b;

    @ApiModelProperty(value = "设备设施资料-钻井装置基本资料参数B4c")
    @Convert(converter = DrillingMachineMenuConverter2_4.class)
    DrillingMachineMenu2_4 b4c;

}
